package api.pay;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Color;

import java.lang.ref.SoftReference;

public abstract class VIP_API_PAY {

    public static String clazz = "com.dotools.paylibrary.vip.ApiPayVip";

    public static String VIP_LOGIN_SUCCESS_ACTION = "vip_login_success_action";
    public static String VIP_PAY_SUCCESS_ACTION = "vip_pay_success_action";

    private static SoftReference<VIP_API_PAY> sf;

    public synchronized static VIP_API_PAY getInstance() {

        if (sf == null || sf.get() == null) {
            Object o = null;
            try {
                o = Class.forName(clazz).newInstance();
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (InstantiationException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            }
            if (o != null) {
                sf = new SoftReference<>((VIP_API_PAY) o);
                return (VIP_API_PAY) o;
            }
        }
        return sf == null ? null : sf.get();
    }

    public interface WXLogInCallBack {
        void error( String msg);
        void success();
    }

    /**
     *  初始化VIP调用
     * @param weixinAppid   微信支付id
     * @param applicationId   应用的applicationId
     * @param isOld   是否兼容老用户
     *@param bgColor   我的页面背景颜色
     *@param bgNoVipImgId   我的页面vip图片样式 默认vip_title_novip_mode_one
     */
    public abstract void init(Context context, String weixinAppid, String applicationId, boolean isOld, int bgColor, int bgNoVipImgId);


    /**
     * 设置图片
     */
    public abstract void login(Context context,String wxcode, WXLogInCallBack callBack );


    /**
     * 获取剩余时间
     */
    public abstract long getVipTime(Context context);

    /**
     * 获取剩余时间文字
     */
    public abstract String getVipTimeStr(Context context,long time);


    /**
     * 获取是否是会员
     */
    public abstract boolean isVip(Context context);

    /**
     * 获取是否是android会员
     */
    public abstract boolean isOldVip(Context context);

    /**
     * 获取用户ID
     */
    public abstract String getUserId(Context context);
    /**
     * 设置用户ID
     */
    public abstract void  setUserId(Context context,String id);

    /**
     * 获取用户名
     */
    public abstract String getUserName(Context context);

    /**
     * 设置用户名
     */
    public abstract void setUserName(Context context,String name);

    /**
     * 获取图片
     */
    public abstract Bitmap getUserBitmap(Context context);


}